#ifndef _TASK_MANAGER_HPP_
#define _TASK_MANAGER_HPP_
#include <vector>
#include <iostream>
#include <ctime>
typedef void (*task_type)();

void download()
{
    std::cout<<"我是一个下载任务"<<std::endl;
}
void upload()
{
    std::cout<<"我是一个上传任务"<<std::endl;
}

void update()
{
    std::cout<<"我是一个更新任务"<<std::endl;
}

class TaskManager
{
public:
    TaskManager()
    {
        srand((unsigned int)time(nullptr));
    }
    ~TaskManager()
    {

    }
    void task_register(task_type task)
    {
        _tasks.push_back(task);
    }
    //随机任务选择
    int task_code()
    {
        return random()%_tasks.size();
    }

    //执行任务
    void execute(int code)
    {
        _tasks[code]();
        //std::cout<<"test"<<std::endl;
    }
private:
    std::vector<task_type> _tasks;
};

#endif